/**
 * 
 */
package net.sahv.bdyz.controller.admin;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSON;

import net.sahv.bdyz.model.Theme;
import net.sahv.bdyz.service.PatternService;
import net.sahv.bdyz.service.ThemeService;
import net.sahv.bdyz.util.PagingUtil;

/**
 * @author 张天敏
 * @date 日期：2016年8月11日 时间：上午10:05:23
 */
@Controller("adminThemeController")
@RequestMapping("admin/theme")
public class ThemeController {
	
	@Autowired
	private ThemeService themeService;
	@Autowired
	private PatternService patternService;// 花型列表
	
	/**
	 * 跳转到花型主题管理界面
	 * @author 张天敏
	 * @date 日期：2016年8月11日 时间：上午10:25:07
	 * @return
	 */
	@RequestMapping(value = "themeList", method = RequestMethod.GET)
	public String themeList(){
		return "admin/theme/themeList";
	}
	
	/**
	 * 花型主题管理
	 * @author 张天敏
	 * @date 日期：2016年8月11日 时间：上午10:25:12
	 * @param pagingUtil
	 * @param request
	 * @return
	 */
	@ResponseBody
	@RequestMapping(value = "themeList", method = RequestMethod.POST)
	public JSON themeList(PagingUtil pagingUtil, HttpServletRequest request) {
		
		String T_NAME=request.getParameter("T_NAME");
		
		String sortField = " order by T_CREATE_TIME desc ";
		String where = " where 1=1 ";
		
		if(T_NAME!=null&&!T_NAME.trim().equals("")){
			where+=" AND t.`T_NAME` LIKE '%"+T_NAME+"%' ";
		}
		
		Map<String, Object> param = new HashMap<String, Object>();

		param.put("start", pagingUtil.getiDisplayStart());
		param.put("length", pagingUtil.getiDisplayLength());
		param.put("where", where);
		param.put("sortField", sortField);

		List<Map<String, Object>> themeList = themeService.themeList(param);
		// 统计信息的总条数
		Integer themeListCount = themeService.themeListCount(where);

		Map<String, Object> map = new HashMap<String, Object>();
		map.put("aaData", themeList);
		// 查出来总共有多少条记录
		map.put("iTotalRecords", themeListCount);
		map.put("iTotalDisplayRecords", themeListCount);
		map.put("sEcho", pagingUtil.getsEcho());
		return  (JSON) JSON.toJSON(map);
	}
	
	/**
	 * 跳转到花型主题添加
	 * @author 张天敏
	 * @date 日期：2016年8月11日 时间：上午10:37:27
	 * @return
	 */
	@RequestMapping(value = "insertTheme", method = RequestMethod.GET)
	public String insertTheme(){
		return "admin/theme/insertTheme";
	}
	
	/**
	 * 花型主题添加
	 * @author 张天敏
	 * @date 日期：2016年8月11日 时间：上午10:37:56
	 * @param theme
	 * @return
	 */
	@ResponseBody
	@RequestMapping(value="insertTheme",method=RequestMethod.POST)
	public ApiResult insertTheme(Theme theme){
		ApiResult result=new ApiResult();
		theme.setCreateTime(new Date());
		theme.setIsDelete(0);
		int flag=themeService.insert(theme);
		if(flag==1){
			result.msg.status=0;
			result.msg.desc="添加成功！";
		}else if(flag==0){
			result.msg.status=1;
			result.msg.desc="添加失败！";
		}
		return result;
	}
	
	/**
	 * 跳转到花型主题编辑
	 * @author 张天敏
	 * @date 日期：2016年8月11日 时间：上午10:38:02
	 * @param model
	 * @param id
	 * @return
	 */
	@RequestMapping(value = "updateTheme", method = RequestMethod.GET)
	public String updateTheme(Model model,Integer id){
		Theme theme=themeService.selectByPrimaryKey(id);
		model.addAttribute("theme", theme);
		return "admin/theme/updateTheme";
	}
	
	/**
	 * 花型主题编辑
	 * @author 张天敏
	 * @date 日期：2016年8月11日 时间：上午10:38:25
	 * @param theme
	 * @return
	 */
	@ResponseBody
	@RequestMapping(value="updateTheme",method=RequestMethod.POST)
	public ApiResult updateTheme(Theme theme){
		ApiResult result=new ApiResult();
		Theme theme2=themeService.selectByPrimaryKey(theme.getId());
		theme2.setImg(theme.getImg());
		theme2.setName(theme.getName());
		theme2.setNameEn(theme.getNameEn());
		theme2.setInfo(theme.getInfo());
		theme2.setMessage1(theme.getMessage1());
		int flag=themeService.updateByPrimaryKey(theme2);
		if(flag==1){
			result.msg.status=0;
			result.msg.desc="修改成功！";
		}else if(flag==0){
			result.msg.status=1;
			result.msg.desc="修改失败！";
		}
		return result;
	}
	
	/**
	 * 花型主题删除
	 * @author 张天敏
	 * @date 日期：2016年8月11日 时间：上午10:38:31
	 * @param id
	 * @return
	 */
	@ResponseBody
	@RequestMapping(value="deleteTheme",method=RequestMethod.POST)
	public ApiResult deleteTheme(Integer[] id){
		ApiResult result=new ApiResult();
		int flag=0;
		Integer[] tmp = new Integer[id.length];// 临时数组
		int idx = 0;// 常量
		if (id.length > 0) {
			for (int i : id) {
				int count = 0;
				count = patternService.getCountByThemeId(i);
				if (count == 0) {
					tmp[idx] = i;
					idx++;
				}
			}
			flag = themeService.delete(tmp);

		}
		if (flag > 0) {
			result.msg.status = 0;
			result.msg.desc = "删除成功！共删除" + flag + "条数据！其中" + (id.length - idx) + "条数据下尚存在花型！";
		} else if (flag == 0 && id.length == 1) {
			result.msg.status = 1;
			result.msg.desc = "删除失败！该数据下尚存在花型！";
		} else {
			result.msg.status = 1;
			result.msg.desc = "删除失败！";
		}
		return result;
	}
	
	
	

}
